From f366e8cde2ed8b9b42d4430088e2c007efc39da0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Mon, 28 Apr 2014 15:49:39 +0200 Subject: [PATCH] add n_components casting test --- tests/Makefile.am | 1 + tests/n_components_cast.c | 66 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 tests/n_components_cast.c diff --git a/tests/Makefile.am b/tests/Makefile.am index 709bd84..2733a28 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -19,6 +19,7 @@ C_TESTS = \ extract \ nop \ n_components \ + n_components_cast \ models \ cairo-RGB24 \ $(CONCURRENCY_STRESS_TEST) diff --git a/tests/n_components_cast.c b/tests/n_components_cast.c new file mode 100644 index 0000000..307431a --- /dev/null +++ b/tests/n_components_cast.c @@ -0,0 +1,66 @@ +/* babl - dynamically extendable universal pixel conversion library. + * Copyright (C) 2005, Øyvind Kolås. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see + * . + */ + +#include "config.h" +#include +#include +#include +#include "babl.h" +#include "common.inc" + +int +main (int argc, + char **argv) +{ + int OK = 1; + babl_init (); + { + unsigned char in[][4] = {{0,1,2,3 },{4,5,6,7 },{8,9,10,11 }}; + unsigned char out1[][1] = {{0}, {4}, {8} }; + unsigned char out2[][2] = {{0,1}, {4,5}, {8,9} }; + unsigned char out4[][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; + //unsigned char out5[][5] = {{0,1,2,3,0}, {4,5,6,7,0},{8,9,10,11,0} }; + + CHECK_CONV("RGBAu8 to n1'", unsigned char, + babl_format("R'G'B'A u8"), + babl_format_n (babl_type ("u8"), 1), + in, out1); + + + CHECK_CONV("RGBAu8 to n2'", unsigned char, + babl_format("R'G'B'A u8"), + babl_format_n (babl_type ("u8"), 2), + in, out2); + + + CHECK_CONV("RGBAu8 to n4'", unsigned char, + babl_format("R'G'B'A u8"), + babl_format_n (babl_type ("u8"), 4), + in, out4); + + /* XXX: uncomment this when it passes + CHECK_CONV("RGBAu8 to n5'", unsigned char, + babl_format("R'G'B'A u8"), + babl_format_n (babl_type ("u8"), 5), + in, out5); + */ + } + + babl_exit (); + return !OK; +} -- 2.30.2